home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / nrpas13.zip / EULSUM.PAS < prev    next >
Pascal/Delphi Source File  |  1991-04-29  |  936b  |  33 lines

  1. PROCEDURE eulsum(VAR sum: real; term: real; jterm: integer);
  2. (* Programs using routine EULSUM must declare the variable array
  3.    glwksp: ARRAY [1..np] OF real;
  4. where np is a physical dimension larger than any value of jterm
  5. to be used. Also declare
  6. VAR
  7.    glnterm: integer; *)
  8. VAR
  9.    j: integer;
  10.    tmp,dum: real;
  11. BEGIN
  12.    IF (jterm = 1) THEN BEGIN
  13.       glnterm := 1;
  14.       glwksp[1] := term;
  15.       sum := 0.5*term
  16.    END ELSE BEGIN
  17.       tmp := glwksp[1];
  18.       glwksp[1] := term;
  19.       FOR j := 1 TO glnterm-1 DO BEGIN
  20.          dum := glwksp[j+1];
  21.          glwksp[j+1] := 0.5*(glwksp[j]+tmp);
  22.          tmp := dum
  23.       END;
  24.       glwksp[glnterm+1] := 0.5*(glwksp[glnterm]+tmp);
  25.       IF (abs(glwksp[glnterm+1]) <= abs(glwksp[glnterm])) THEN BEGIN
  26.          sum := sum+0.5*glwksp[glnterm+1];
  27.          glnterm := glnterm+1
  28.       END ELSE BEGIN
  29.          sum := sum+glwksp[glnterm+1]
  30.       END
  31.    END
  32. END;
  33.